//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------

function write(v) { WScript.Echo(v + ""); }

function foo() {}

write(undefined - undefined);
write(undefined - null);
write(undefined - true);
write(undefined - false);
write(undefined - Boolean(true));
write(undefined - Boolean(false));
write(undefined - new Boolean(true));
write(undefined - new Boolean(false));
write(undefined - NaN);
write(undefined - +0);
write(undefined - -0);
write(undefined - 0);
write(undefined - 0.0);
write(undefined - -0.0);
write(undefined - +0.0);
write(undefined - 1);
write(undefined - 10);
write(undefined - 10.0);
write(undefined - 10.1);
write(undefined - -1);
write(undefined - -10);
write(undefined - -10.0);
write(undefined - -10.1);
write(undefined - Number.MAX_VALUE);
write(undefined - Number.MIN_VALUE);
write(undefined - Number.NaN);
write(undefined - Number.POSITIVE_INFINITY);
write(undefined - Number.NEGATIVE_INFINITY);
write(undefined - new Number(NaN));
write(undefined - new Number(+0));
write(undefined - new Number(-0));
write(undefined - new Number(0));
write(undefined - new Number(0.0));
write(undefined - new Number(-0.0));
write(undefined - new Number(+0.0));
write(undefined - new Number(1));
write(undefined - new Number(10));
write(undefined - new Number(10.0));
write(undefined - new Number(10.1));
write(undefined - new Number(-1));
write(undefined - new Number(-10));
write(undefined - new Number(-10.0));
write(undefined - new Number(-10.1));
write(undefined - new Number(Number.MAX_VALUE));
write(undefined - new Number(Number.MIN_VALUE));
write(undefined - new Number(Number.NaN));
write(undefined - new Number(Number.POSITIVE_INFINITY));
write(undefined - new Number(Number.NEGATIVE_INFINITY));
write(undefined - '');
write(undefined - 0xa);
write(undefined - 04);
write(undefined - 'hello');
write(undefined - 'hel' + 'lo');
write(undefined - String(''));
write(undefined - String('hello'));
write(undefined - String('h' + 'ello'));
write(undefined - new String(''));
write(undefined - new String('hello'));
write(undefined - new String('he' + 'llo'));
write(undefined - new Object());
write(undefined - new Object());
write(undefined - [1, 2, 3]);
write(undefined - [1 ,2 , 3]);
write(undefined - new Array(3));
write(undefined - Array(3));
write(undefined - new Array(1 ,2 ,3));
write(undefined - Array(1));
write(undefined - foo);
write(null - undefined);
write(null - null);
write(null - true);
write(null - false);
write(null - Boolean(true));
write(null - Boolean(false));
write(null - new Boolean(true));
write(null - new Boolean(false));
write(null - NaN);
write(null - +0);
write(null - -0);
write(null - 0);
write(null - 0.0);
write(null - -0.0);
write(null - +0.0);
write(null - 1);
write(null - 10);
write(null - 10.0);
write(null - 10.1);
write(null - -1);
write(null - -10);
write(null - -10.0);
write(null - -10.1);
write(null - Number.MAX_VALUE);
write(null - Number.MIN_VALUE);
write(null - Number.NaN);
write(null - Number.POSITIVE_INFINITY);
write(null - Number.NEGATIVE_INFINITY);
write(null - new Number(NaN));
write(null - new Number(+0));
write(null - new Number(-0));
write(null - new Number(0));
write(null - new Number(0.0));
write(null - new Number(-0.0));
write(null - new Number(+0.0));
write(null - new Number(1));
write(null - new Number(10));
write(null - new Number(10.0));
write(null - new Number(10.1));
write(null - new Number(-1));
write(null - new Number(-10));
write(null - new Number(-10.0));
write(null - new Number(-10.1));
write(null - new Number(Number.MAX_VALUE));
write(null - new Number(Number.MIN_VALUE));
write(null - new Number(Number.NaN));
write(null - new Number(Number.POSITIVE_INFINITY));
write(null - new Number(Number.NEGATIVE_INFINITY));
write(null - '');
write(null - 0xa);
write(null - 04);
write(null - 'hello');
write(null - 'hel' + 'lo');
write(null - String(''));
write(null - String('hello'));
write(null - String('h' + 'ello'));
write(null - new String(''));
write(null - new String('hello'));
write(null - new String('he' + 'llo'));
write(null - new Object());
write(null - new Object());
write(null - [1, 2, 3]);
write(null - [1 ,2 , 3]);
write(null - new Array(3));
write(null - Array(3));
write(null - new Array(1 ,2 ,3));
write(null - Array(1));
write(null - foo);
write(true - undefined);
write(true - null);
write(true - true);
write(true - false);
write(true - Boolean(true));
write(true - Boolean(false));
write(true - new Boolean(true));
write(true - new Boolean(false));
write(true - NaN);
write(true - +0);
write(true - -0);
write(true - 0);
write(true - 0.0);
write(true - -0.0);
write(true - +0.0);
write(true - 1);
write(true - 10);
write(true - 10.0);
write(true - 10.1);
write(true - -1);
write(true - -10);
write(true - -10.0);
write(true - -10.1);
write(true - Number.MAX_VALUE);
write(true - Number.MIN_VALUE);
write(true - Number.NaN);
write(true - Number.POSITIVE_INFINITY);
write(true - Number.NEGATIVE_INFINITY);
write(true - new Number(NaN));
write(true - new Number(+0));
write(true - new Number(-0));
write(true - new Number(0));
write(true - new Number(0.0));
write(true - new Number(-0.0));
write(true - new Number(+0.0));
write(true - new Number(1));
write(true - new Number(10));
write(true - new Number(10.0));
write(true - new Number(10.1));
write(true - new Number(-1));
write(true - new Number(-10));
write(true - new Number(-10.0));
write(true - new Number(-10.1));
write(true - new Number(Number.MAX_VALUE));
write(true - new Number(Number.MIN_VALUE));
write(true - new Number(Number.NaN));
write(true - new Number(Number.POSITIVE_INFINITY));
write(true - new Number(Number.NEGATIVE_INFINITY));
write(true - '');
write(true - 0xa);
write(true - 04);
write(true - 'hello');
write(true - 'hel' + 'lo');
write(true - String(''));
write(true - String('hello'));
write(true - String('h' + 'ello'));
write(true - new String(''));
write(true - new String('hello'));
write(true - new String('he' + 'llo'));
write(true - new Object());
write(true - new Object());
write(true - [1, 2, 3]);
write(true - [1 ,2 , 3]);
write(true - new Array(3));
write(true - Array(3));
write(true - new Array(1 ,2 ,3));
write(true - Array(1));
write(true - foo);
write(false - undefined);
write(false - null);
write(false - true);
write(false - false);
write(false - Boolean(true));
write(false - Boolean(false));
write(false - new Boolean(true));
write(false - new Boolean(false));
write(false - NaN);
write(false - +0);
write(false - -0);
write(false - 0);
write(false - 0.0);
write(false - -0.0);
write(false - +0.0);
write(false - 1);
write(false - 10);
write(false - 10.0);
write(false - 10.1);
write(false - -1);
write(false - -10);
write(false - -10.0);
write(false - -10.1);
write(false - Number.MAX_VALUE);
write(false - Number.MIN_VALUE);
write(false - Number.NaN);
write(false - Number.POSITIVE_INFINITY);
write(false - Number.NEGATIVE_INFINITY);
write(false - new Number(NaN));
write(false - new Number(+0));
write(false - new Number(-0));
write(false - new Number(0));
write(false - new Number(0.0));
write(false - new Number(-0.0));
write(false - new Number(+0.0));
write(false - new Number(1));
write(false - new Number(10));
write(false - new Number(10.0));
write(false - new Number(10.1));
write(false - new Number(-1));
write(false - new Number(-10));
write(false - new Number(-10.0));
write(false - new Number(-10.1));
write(false - new Number(Number.MAX_VALUE));
write(false - new Number(Number.MIN_VALUE));
write(false - new Number(Number.NaN));
write(false - new Number(Number.POSITIVE_INFINITY));
write(false - new Number(Number.NEGATIVE_INFINITY));
write(false - '');
write(false - 0xa);
write(false - 04);
write(false - 'hello');
write(false - 'hel' + 'lo');
write(false - String(''));
write(false - String('hello'));
write(false - String('h' + 'ello'));
write(false - new String(''));
write(false - new String('hello'));
write(false - new String('he' + 'llo'));
write(false - new Object());
write(false - new Object());
write(false - [1, 2, 3]);
write(false - [1 ,2 , 3]);
write(false - new Array(3));
write(false - Array(3));
write(false - new Array(1 ,2 ,3));
write(false - Array(1));
write(false - foo);
write(Boolean(true) - undefined);
write(Boolean(true) - null);
write(Boolean(true) - true);
write(Boolean(true) - false);
write(Boolean(true) - Boolean(true));
write(Boolean(true) - Boolean(false));
write(Boolean(true) - new Boolean(true));
write(Boolean(true) - new Boolean(false));
write(Boolean(true) - NaN);
write(Boolean(true) - +0);
write(Boolean(true) - -0);
write(Boolean(true) - 0);
write(Boolean(true) - 0.0);
write(Boolean(true) - -0.0);
write(Boolean(true) - +0.0);
write(Boolean(true) - 1);
write(Boolean(true) - 10);
write(Boolean(true) - 10.0);
write(Boolean(true) - 10.1);
write(Boolean(true) - -1);
write(Boolean(true) - -10);
write(Boolean(true) - -10.0);
write(Boolean(true) - -10.1);
write(Boolean(true) - Number.MAX_VALUE);
write(Boolean(true) - Number.MIN_VALUE);
write(Boolean(true) - Number.NaN);
write(Boolean(true) - Number.POSITIVE_INFINITY);
write(Boolean(true) - Number.NEGATIVE_INFINITY);
write(Boolean(true) - new Number(NaN));
write(Boolean(true) - new Number(+0));
write(Boolean(true) - new Number(-0));
write(Boolean(true) - new Number(0));
write(Boolean(true) - new Number(0.0));
write(Boolean(true) - new Number(-0.0));
write(Boolean(true) - new Number(+0.0));
write(Boolean(true) - new Number(1));
write(Boolean(true) - new Number(10));
write(Boolean(true) - new Number(10.0));
write(Boolean(true) - new Number(10.1));
write(Boolean(true) - new Number(-1));
write(Boolean(true) - new Number(-10));
write(Boolean(true) - new Number(-10.0));
write(Boolean(true) - new Number(-10.1));
write(Boolean(true) - new Number(Number.MAX_VALUE));
write(Boolean(true) - new Number(Number.MIN_VALUE));
write(Boolean(true) - new Number(Number.NaN));
write(Boolean(true) - new Number(Number.POSITIVE_INFINITY));
write(Boolean(true) - new Number(Number.NEGATIVE_INFINITY));
write(Boolean(true) - '');
write(Boolean(true) - 0xa);
write(Boolean(true) - 04);
write(Boolean(true) - 'hello');
write(Boolean(true) - 'hel' + 'lo');
write(Boolean(true) - String(''));
write(Boolean(true) - String('hello'));
write(Boolean(true) - String('h' + 'ello'));
write(Boolean(true) - new String(''));
write(Boolean(true) - new String('hello'));
write(Boolean(true) - new String('he' + 'llo'));
write(Boolean(true) - new Object());
write(Boolean(true) - new Object());
write(Boolean(true) - [1, 2, 3]);
write(Boolean(true) - [1 ,2 , 3]);
write(Boolean(true) - new Array(3));
write(Boolean(true) - Array(3));
write(Boolean(true) - new Array(1 ,2 ,3));
write(Boolean(true) - Array(1));
write(Boolean(true) - foo);
write(Boolean(false) - undefined);
write(Boolean(false) - null);
write(Boolean(false) - true);
write(Boolean(false) - false);
write(Boolean(false) - Boolean(true));
write(Boolean(false) - Boolean(false));
write(Boolean(false) - new Boolean(true));
write(Boolean(false) - new Boolean(false));
write(Boolean(false) - NaN);
write(Boolean(false) - +0);
write(Boolean(false) - -0);
write(Boolean(false) - 0);
write(Boolean(false) - 0.0);
write(Boolean(false) - -0.0);
write(Boolean(false) - +0.0);
write(Boolean(false) - 1);
write(Boolean(false) - 10);
write(Boolean(false) - 10.0);
write(Boolean(false) - 10.1);
write(Boolean(false) - -1);
write(Boolean(false) - -10);
write(Boolean(false) - -10.0);
write(Boolean(false) - -10.1);
write(Boolean(false) - Number.MAX_VALUE);
write(Boolean(false) - Number.MIN_VALUE);
write(Boolean(false) - Number.NaN);
write(Boolean(false) - Number.POSITIVE_INFINITY);
write(Boolean(false) - Number.NEGATIVE_INFINITY);
write(Boolean(false) - new Number(NaN));
write(Boolean(false) - new Number(+0));
write(Boolean(false) - new Number(-0));
write(Boolean(false) - new Number(0));
write(Boolean(false) - new Number(0.0));
write(Boolean(false) - new Number(-0.0));
write(Boolean(false) - new Number(+0.0));
write(Boolean(false) - new Number(1));
write(Boolean(false) - new Number(10));
write(Boolean(false) - new Number(10.0));
write(Boolean(false) - new Number(10.1));
write(Boolean(false) - new Number(-1));
write(Boolean(false) - new Number(-10));
write(Boolean(false) - new Number(-10.0));
write(Boolean(false) - new Number(-10.1));
write(Boolean(false) - new Number(Number.MAX_VALUE));
write(Boolean(false) - new Number(Number.MIN_VALUE));
write(Boolean(false) - new Number(Number.NaN));
write(Boolean(false) - new Number(Number.POSITIVE_INFINITY));
write(Boolean(false) - new Number(Number.NEGATIVE_INFINITY));
write(Boolean(false) - '');
write(Boolean(false) - 0xa);
write(Boolean(false) - 04);
write(Boolean(false) - 'hello');
write(Boolean(false) - 'hel' + 'lo');
write(Boolean(false) - String(''));
write(Boolean(false) - String('hello'));
write(Boolean(false) - String('h' + 'ello'));
write(Boolean(false) - new String(''));
write(Boolean(false) - new String('hello'));
write(Boolean(false) - new String('he' + 'llo'));
write(Boolean(false) - new Object());
write(Boolean(false) - new Object());
write(Boolean(false) - [1, 2, 3]);
write(Boolean(false) - [1 ,2 , 3]);
write(Boolean(false) - new Array(3));
write(Boolean(false) - Array(3));
write(Boolean(false) - new Array(1 ,2 ,3));
write(Boolean(false) - Array(1));
write(Boolean(false) - foo);
write(new Boolean(true) - undefined);
write(new Boolean(true) - null);
write(new Boolean(true) - true);
write(new Boolean(true) - false);
write(new Boolean(true) - Boolean(true));
write(new Boolean(true) - Boolean(false));
write(new Boolean(true) - new Boolean(true));
write(new Boolean(true) - new Boolean(false));
write(new Boolean(true) - NaN);
write(new Boolean(true) - +0);
write(new Boolean(true) - -0);
write(new Boolean(true) - 0);
write(new Boolean(true) - 0.0);
write(new Boolean(true) - -0.0);
write(new Boolean(true) - +0.0);
write(new Boolean(true) - 1);
write(new Boolean(true) - 10);
write(new Boolean(true) - 10.0);
write(new Boolean(true) - 10.1);
write(new Boolean(true) - -1);
write(new Boolean(true) - -10);
write(new Boolean(true) - -10.0);
write(new Boolean(true) - -10.1);
write(new Boolean(true) - Number.MAX_VALUE);
write(new Boolean(true) - Number.MIN_VALUE);
write(new Boolean(true) - Number.NaN);
write(new Boolean(true) - Number.POSITIVE_INFINITY);
write(new Boolean(true) - Number.NEGATIVE_INFINITY);
write(new Boolean(true) - new Number(NaN));
write(new Boolean(true) - new Number(+0));
write(new Boolean(true) - new Number(-0));
write(new Boolean(true) - new Number(0));
write(new Boolean(true) - new Number(0.0));
write(new Boolean(true) - new Number(-0.0));
write(new Boolean(true) - new Number(+0.0));
write(new Boolean(true) - new Number(1));
write(new Boolean(true) - new Number(10));
write(new Boolean(true) - new Number(10.0));
write(new Boolean(true) - new Number(10.1));
write(new Boolean(true) - new Number(-1));
write(new Boolean(true) - new Number(-10));
write(new Boolean(true) - new Number(-10.0));
write(new Boolean(true) - new Number(-10.1));
write(new Boolean(true) - new Number(Number.MAX_VALUE));
write(new Boolean(true) - new Number(Number.MIN_VALUE));
write(new Boolean(true) - new Number(Number.NaN));
write(new Boolean(true) - new Number(Number.POSITIVE_INFINITY));
write(new Boolean(true) - new Number(Number.NEGATIVE_INFINITY));
write(new Boolean(true) - '');
write(new Boolean(true) - 0xa);
write(new Boolean(true) - 04);
write(new Boolean(true) - 'hello');
write(new Boolean(true) - 'hel' + 'lo');
write(new Boolean(true) - String(''));
write(new Boolean(true) - String('hello'));
write(new Boolean(true) - String('h' + 'ello'));
write(new Boolean(true) - new String(''));
write(new Boolean(true) - new String('hello'));
write(new Boolean(true) - new String('he' + 'llo'));
write(new Boolean(true) - new Object());
write(new Boolean(true) - new Object());
write(new Boolean(true) - [1, 2, 3]);
write(new Boolean(true) - [1 ,2 , 3]);
write(new Boolean(true) - new Array(3));
write(new Boolean(true) - Array(3));
write(new Boolean(true) - new Array(1 ,2 ,3));
write(new Boolean(true) - Array(1));
write(new Boolean(true) - foo);
write(new Boolean(false) - undefined);
write(new Boolean(false) - null);
write(new Boolean(false) - true);
write(new Boolean(false) - false);
write(new Boolean(false) - Boolean(true));
write(new Boolean(false) - Boolean(false));
write(new Boolean(false) - new Boolean(true));
write(new Boolean(false) - new Boolean(false));
write(new Boolean(false) - NaN);
write(new Boolean(false) - +0);
write(new Boolean(false) - -0);
write(new Boolean(false) - 0);
write(new Boolean(false) - 0.0);
write(new Boolean(false) - -0.0);
write(new Boolean(false) - +0.0);
write(new Boolean(false) - 1);
write(new Boolean(false) - 10);
write(new Boolean(false) - 10.0);
write(new Boolean(false) - 10.1);
write(new Boolean(false) - -1);
write(new Boolean(false) - -10);
write(new Boolean(false) - -10.0);
write(new Boolean(false) - -10.1);
write(new Boolean(false) - Number.MAX_VALUE);
write(new Boolean(false) - Number.MIN_VALUE);
write(new Boolean(false) - Number.NaN);
write(new Boolean(false) - Number.POSITIVE_INFINITY);
write(new Boolean(false) - Number.NEGATIVE_INFINITY);
write(new Boolean(false) - new Number(NaN));
write(new Boolean(false) - new Number(+0));
write(new Boolean(false) - new Number(-0));
write(new Boolean(false) - new Number(0));
write(new Boolean(false) - new Number(0.0));
write(new Boolean(false) - new Number(-0.0));
write(new Boolean(false) - new Number(+0.0));
write(new Boolean(false) - new Number(1));
write(new Boolean(false) - new Number(10));
write(new Boolean(false) - new Number(10.0));
write(new Boolean(false) - new Number(10.1));
write(new Boolean(false) - new Number(-1));
write(new Boolean(false) - new Number(-10));
write(new Boolean(false) - new Number(-10.0));
write(new Boolean(false) - new Number(-10.1));
write(new Boolean(false) - new Number(Number.MAX_VALUE));
write(new Boolean(false) - new Number(Number.MIN_VALUE));
write(new Boolean(false) - new Number(Number.NaN));
write(new Boolean(false) - new Number(Number.POSITIVE_INFINITY));
write(new Boolean(false) - new Number(Number.NEGATIVE_INFINITY));
write(new Boolean(false) - '');
write(new Boolean(false) - 0xa);
write(new Boolean(false) - 04);
write(new Boolean(false) - 'hello');
write(new Boolean(false) - 'hel' + 'lo');
write(new Boolean(false) - String(''));
write(new Boolean(false) - String('hello'));
write(new Boolean(false) - String('h' + 'ello'));
write(new Boolean(false) - new String(''));
write(new Boolean(false) - new String('hello'));
write(new Boolean(false) - new String('he' + 'llo'));
write(new Boolean(false) - new Object());
write(new Boolean(false) - new Object());
write(new Boolean(false) - [1, 2, 3]);
write(new Boolean(false) - [1 ,2 , 3]);
write(new Boolean(false) - new Array(3));
write(new Boolean(false) - Array(3));
write(new Boolean(false) - new Array(1 ,2 ,3));
write(new Boolean(false) - Array(1));
write(new Boolean(false) - foo);
write(NaN - undefined);
write(NaN - null);
write(NaN - true);
write(NaN - false);
write(NaN - Boolean(true));
write(NaN - Boolean(false));
write(NaN - new Boolean(true));
write(NaN - new Boolean(false));
write(NaN - NaN);
write(NaN - +0);
write(NaN - -0);
write(NaN - 0);
write(NaN - 0.0);
write(NaN - -0.0);
write(NaN - +0.0);
write(NaN - 1);
write(NaN - 10);
write(NaN - 10.0);
write(NaN - 10.1);
write(NaN - -1);
write(NaN - -10);
write(NaN - -10.0);
write(NaN - -10.1);
write(NaN - Number.MAX_VALUE);
write(NaN - Number.MIN_VALUE);
write(NaN - Number.NaN);
write(NaN - Number.POSITIVE_INFINITY);
write(NaN - Number.NEGATIVE_INFINITY);
write(NaN - new Number(NaN));
write(NaN - new Number(+0));
write(NaN - new Number(-0));
write(NaN - new Number(0));
write(NaN - new Number(0.0));
write(NaN - new Number(-0.0));
write(NaN - new Number(+0.0));
write(NaN - new Number(1));
write(NaN - new Number(10));
write(NaN - new Number(10.0));
write(NaN - new Number(10.1));
write(NaN - new Number(-1));
write(NaN - new Number(-10));
write(NaN - new Number(-10.0));
write(NaN - new Number(-10.1));
write(NaN - new Number(Number.MAX_VALUE));
write(NaN - new Number(Number.MIN_VALUE));
write(NaN - new Number(Number.NaN));
write(NaN - new Number(Number.POSITIVE_INFINITY));
write(NaN - new Number(Number.NEGATIVE_INFINITY));
write(NaN - '');
write(NaN - 0xa);
write(NaN - 04);
write(NaN - 'hello');
write(NaN - 'hel' + 'lo');
write(NaN - String(''));
write(NaN - String('hello'));
write(NaN - String('h' + 'ello'));
write(NaN - new String(''));
write(NaN - new String('hello'));
write(NaN - new String('he' + 'llo'));
write(NaN - new Object());
write(NaN - new Object());
write(NaN - [1, 2, 3]);
write(NaN - [1 ,2 , 3]);
write(NaN - new Array(3));
write(NaN - Array(3));
write(NaN - new Array(1 ,2 ,3));
write(NaN - Array(1));
write(NaN - foo);
write(+0 - undefined);
write(+0 - null);
write(+0 - true);
write(+0 - false);
write(+0 - Boolean(true));
write(+0 - Boolean(false));
write(+0 - new Boolean(true));
write(+0 - new Boolean(false));
write(+0 - NaN);
write(+0 - +0);
write(+0 - -0);
write(+0 - 0);
write(+0 - 0.0);
write(+0 - -0.0);
write(+0 - +0.0);
write(+0 - 1);
write(+0 - 10);
write(+0 - 10.0);
write(+0 - 10.1);
write(+0 - -1);
write(+0 - -10);
write(+0 - -10.0);
write(+0 - -10.1);
write(+0 - Number.MAX_VALUE);
write(+0 - Number.MIN_VALUE);
write(+0 - Number.NaN);
write(+0 - Number.POSITIVE_INFINITY);
write(+0 - Number.NEGATIVE_INFINITY);
write(+0 - new Number(NaN));
write(+0 - new Number(+0));
write(+0 - new Number(-0));
write(+0 - new Number(0));
write(+0 - new Number(0.0));
write(+0 - new Number(-0.0));
write(+0 - new Number(+0.0));
write(+0 - new Number(1));
write(+0 - new Number(10));
write(+0 - new Number(10.0));
write(+0 - new Number(10.1));
write(+0 - new Number(-1));
write(+0 - new Number(-10));
write(+0 - new Number(-10.0));
write(+0 - new Number(-10.1));
write(+0 - new Number(Number.MAX_VALUE));
write(+0 - new Number(Number.MIN_VALUE));
write(+0 - new Number(Number.NaN));
write(+0 - new Number(Number.POSITIVE_INFINITY));
write(+0 - new Number(Number.NEGATIVE_INFINITY));
write(+0 - '');
write(+0 - 0xa);
write(+0 - 04);
write(+0 - 'hello');
write(+0 - 'hel' + 'lo');
write(+0 - String(''));
write(+0 - String('hello'));
write(+0 - String('h' + 'ello'));
write(+0 - new String(''));
write(+0 - new String('hello'));
write(+0 - new String('he' + 'llo'));
write(+0 - new Object());
write(+0 - new Object());
write(+0 - [1, 2, 3]);
write(+0 - [1 ,2 , 3]);
write(+0 - new Array(3));
write(+0 - Array(3));
write(+0 - new Array(1 ,2 ,3));
write(+0 - Array(1));
write(+0 - foo);
write(-0 - undefined);
write(-0 - null);
write(-0 - true);
write(-0 - false);
write(-0 - Boolean(true));
write(-0 - Boolean(false));
write(-0 - new Boolean(true));
write(-0 - new Boolean(false));
write(-0 - NaN);
write(-0 - +0);
write(-0 - -0);
write(-0 - 0);
write(-0 - 0.0);
write(-0 - -0.0);
write(-0 - +0.0);
write(-0 - 1);
write(-0 - 10);
write(-0 - 10.0);
write(-0 - 10.1);
write(-0 - -1);
write(-0 - -10);
write(-0 - -10.0);
write(-0 - -10.1);
write(-0 - Number.MAX_VALUE);
write(-0 - Number.MIN_VALUE);
write(-0 - Number.NaN);
write(-0 - Number.POSITIVE_INFINITY);
write(-0 - Number.NEGATIVE_INFINITY);
write(-0 - new Number(NaN));
write(-0 - new Number(+0));
write(-0 - new Number(-0));
write(-0 - new Number(0));
write(-0 - new Number(0.0));
write(-0 - new Number(-0.0));
write(-0 - new Number(+0.0));
write(-0 - new Number(1));
write(-0 - new Number(10));
write(-0 - new Number(10.0));
write(-0 - new Number(10.1));
write(-0 - new Number(-1));
write(-0 - new Number(-10));
write(-0 - new Number(-10.0));
write(-0 - new Number(-10.1));
write(-0 - new Number(Number.MAX_VALUE));
write(-0 - new Number(Number.MIN_VALUE));
write(-0 - new Number(Number.NaN));
write(-0 - new Number(Number.POSITIVE_INFINITY));
write(-0 - new Number(Number.NEGATIVE_INFINITY));
write(-0 - '');
write(-0 - 0xa);
write(-0 - 04);
write(-0 - 'hello');
write(-0 - 'hel' + 'lo');
write(-0 - String(''));
write(-0 - String('hello'));
write(-0 - String('h' + 'ello'));
write(-0 - new String(''));
write(-0 - new String('hello'));
write(-0 - new String('he' + 'llo'));
write(-0 - new Object());
write(-0 - new Object());
write(-0 - [1, 2, 3]);
write(-0 - [1 ,2 , 3]);
write(-0 - new Array(3));
write(-0 - Array(3));
write(-0 - new Array(1 ,2 ,3));
write(-0 - Array(1));
write(-0 - foo);
write(0 - undefined);
write(0 - null);
write(0 - true);
write(0 - false);
write(0 - Boolean(true));
write(0 - Boolean(false));
write(0 - new Boolean(true));
write(0 - new Boolean(false));
write(0 - NaN);
write(0 - +0);
write(0 - -0);
write(0 - 0);
write(0 - 0.0);
write(0 - -0.0);
write(0 - +0.0);
write(0 - 1);
write(0 - 10);
write(0 - 10.0);
write(0 - 10.1);
write(0 - -1);
write(0 - -10);
write(0 - -10.0);
write(0 - -10.1);
write(0 - Number.MAX_VALUE);
write(0 - Number.MIN_VALUE);
write(0 - Number.NaN);
write(0 - Number.POSITIVE_INFINITY);
write(0 - Number.NEGATIVE_INFINITY);
write(0 - new Number(NaN));
write(0 - new Number(+0));
write(0 - new Number(-0));
write(0 - new Number(0));
write(0 - new Number(0.0));
write(0 - new Number(-0.0));
write(0 - new Number(+0.0));
write(0 - new Number(1));
write(0 - new Number(10));
write(0 - new Number(10.0));
write(0 - new Number(10.1));
write(0 - new Number(-1));
write(0 - new Number(-10));
write(0 - new Number(-10.0));
write(0 - new Number(-10.1));
write(0 - new Number(Number.MAX_VALUE));
write(0 - new Number(Number.MIN_VALUE));
write(0 - new Number(Number.NaN));
write(0 - new Number(Number.POSITIVE_INFINITY));
write(0 - new Number(Number.NEGATIVE_INFINITY));
write(0 - '');
write(0 - 0xa);
write(0 - 04);
write(0 - 'hello');
write(0 - 'hel' + 'lo');
write(0 - String(''));
write(0 - String('hello'));
write(0 - String('h' + 'ello'));
write(0 - new String(''));
write(0 - new String('hello'));
write(0 - new String('he' + 'llo'));
write(0 - new Object());
write(0 - new Object());
write(0 - [1, 2, 3]);
write(0 - [1 ,2 , 3]);
write(0 - new Array(3));
write(0 - Array(3));
write(0 - new Array(1 ,2 ,3));
write(0 - Array(1));
write(0 - foo);
write(0.0 - undefined);
write(0.0 - null);
write(0.0 - true);
write(0.0 - false);
write(0.0 - Boolean(true));
write(0.0 - Boolean(false));
write(0.0 - new Boolean(true));
write(0.0 - new Boolean(false));
write(0.0 - NaN);
write(0.0 - +0);
write(0.0 - -0);
write(0.0 - 0);
write(0.0 - 0.0);
write(0.0 - -0.0);
write(0.0 - +0.0);
write(0.0 - 1);
write(0.0 - 10);
write(0.0 - 10.0);
write(0.0 - 10.1);
write(0.0 - -1);
write(0.0 - -10);
write(0.0 - -10.0);
write(0.0 - -10.1);
write(0.0 - Number.MAX_VALUE);
write(0.0 - Number.MIN_VALUE);
write(0.0 - Number.NaN);
write(0.0 - Number.POSITIVE_INFINITY);
write(0.0 - Number.NEGATIVE_INFINITY);
write(0.0 - new Number(NaN));
write(0.0 - new Number(+0));
write(0.0 - new Number(-0));
write(0.0 - new Number(0));
write(0.0 - new Number(0.0));
write(0.0 - new Number(-0.0));
write(0.0 - new Number(+0.0));
write(0.0 - new Number(1));
write(0.0 - new Number(10));
write(0.0 - new Number(10.0));
write(0.0 - new Number(10.1));
write(0.0 - new Number(-1));
write(0.0 - new Number(-10));
write(0.0 - new Number(-10.0));
write(0.0 - new Number(-10.1));
write(0.0 - new Number(Number.MAX_VALUE));
write(0.0 - new Number(Number.MIN_VALUE));
write(0.0 - new Number(Number.NaN));
write(0.0 - new Number(Number.POSITIVE_INFINITY));
write(0.0 - new Number(Number.NEGATIVE_INFINITY));
write(0.0 - '');
write(0.0 - 0xa);
write(0.0 - 04);
write(0.0 - 'hello');
write(0.0 - 'hel' + 'lo');
write(0.0 - String(''));
write(0.0 - String('hello'));
write(0.0 - String('h' + 'ello'));
write(0.0 - new String(''));
write(0.0 - new String('hello'));
write(0.0 - new String('he' + 'llo'));
write(0.0 - new Object());
write(0.0 - new Object());
write(0.0 - [1, 2, 3]);
write(0.0 - [1 ,2 , 3]);
write(0.0 - new Array(3));
write(0.0 - Array(3));
write(0.0 - new Array(1 ,2 ,3));
write(0.0 - Array(1));
write(0.0 - foo);
write(-0.0 - undefined);
write(-0.0 - null);
write(-0.0 - true);
write(-0.0 - false);
write(-0.0 - Boolean(true));
write(-0.0 - Boolean(false));
write(-0.0 - new Boolean(true));
write(-0.0 - new Boolean(false));
write(-0.0 - NaN);
write(-0.0 - +0);
write(-0.0 - -0);
write(-0.0 - 0);
write(-0.0 - 0.0);
write(-0.0 - -0.0);
write(-0.0 - +0.0);
write(-0.0 - 1);
write(-0.0 - 10);
write(-0.0 - 10.0);
write(-0.0 - 10.1);
write(-0.0 - -1);
write(-0.0 - -10);
write(-0.0 - -10.0);
write(-0.0 - -10.1);
write(-0.0 - Number.MAX_VALUE);
write(-0.0 - Number.MIN_VALUE);
write(-0.0 - Number.NaN);
write(-0.0 - Number.POSITIVE_INFINITY);
write(-0.0 - Number.NEGATIVE_INFINITY);
write(-0.0 - new Number(NaN));
write(-0.0 - new Number(+0));
write(-0.0 - new Number(-0));
write(-0.0 - new Number(0));
write(-0.0 - new Number(0.0));
write(-0.0 - new Number(-0.0));
write(-0.0 - new Number(+0.0));
write(-0.0 - new Number(1));
write(-0.0 - new Number(10));
write(-0.0 - new Number(10.0));
write(-0.0 - new Number(10.1));
write(-0.0 - new Number(-1));
write(-0.0 - new Number(-10));
write(-0.0 - new Number(-10.0));
write(-0.0 - new Number(-10.1));
write(-0.0 - new Number(Number.MAX_VALUE));
write(-0.0 - new Number(Number.MIN_VALUE));
write(-0.0 - new Number(Number.NaN));
write(-0.0 - new Number(Number.POSITIVE_INFINITY));
write(-0.0 - new Number(Number.NEGATIVE_INFINITY));
write(-0.0 - '');
write(-0.0 - 0xa);
write(-0.0 - 04);
write(-0.0 - 'hello');
write(-0.0 - 'hel' + 'lo');
write(-0.0 - String(''));
write(-0.0 - String('hello'));
write(-0.0 - String('h' + 'ello'));
write(-0.0 - new String(''));
write(-0.0 - new String('hello'));
write(-0.0 - new String('he' + 'llo'));
write(-0.0 - new Object());
write(-0.0 - new Object());
write(-0.0 - [1, 2, 3]);
write(-0.0 - [1 ,2 , 3]);
write(-0.0 - new Array(3));
write(-0.0 - Array(3));
write(-0.0 - new Array(1 ,2 ,3));
write(-0.0 - Array(1));
write(-0.0 - foo);
write(+0.0 - undefined);
write(+0.0 - null);
write(+0.0 - true);
write(+0.0 - false);
write(+0.0 - Boolean(true));
write(+0.0 - Boolean(false));
write(+0.0 - new Boolean(true));
write(+0.0 - new Boolean(false));
write(+0.0 - NaN);
write(+0.0 - +0);
write(+0.0 - -0);
write(+0.0 - 0);
write(+0.0 - 0.0);
write(+0.0 - -0.0);
write(+0.0 - +0.0);
write(+0.0 - 1);
write(+0.0 - 10);
write(+0.0 - 10.0);
write(+0.0 - 10.1);
write(+0.0 - -1);
write(+0.0 - -10);
write(+0.0 - -10.0);
write(+0.0 - -10.1);
write(+0.0 - Number.MAX_VALUE);
write(+0.0 - Number.MIN_VALUE);
write(+0.0 - Number.NaN);
write(+0.0 - Number.POSITIVE_INFINITY);
write(+0.0 - Number.NEGATIVE_INFINITY);
write(+0.0 - new Number(NaN));
write(+0.0 - new Number(+0));
write(+0.0 - new Number(-0));
write(+0.0 - new Number(0));
write(+0.0 - new Number(0.0));
write(+0.0 - new Number(-0.0));
write(+0.0 - new Number(+0.0));
write(+0.0 - new Number(1));
write(+0.0 - new Number(10));
write(+0.0 - new Number(10.0));
write(+0.0 - new Number(10.1));
write(+0.0 - new Number(-1));
write(+0.0 - new Number(-10));
write(+0.0 - new Number(-10.0));
write(+0.0 - new Number(-10.1));
write(+0.0 - new Number(Number.MAX_VALUE));
write(+0.0 - new Number(Number.MIN_VALUE));
write(+0.0 - new Number(Number.NaN));
write(+0.0 - new Number(Number.POSITIVE_INFINITY));
write(+0.0 - new Number(Number.NEGATIVE_INFINITY));
